﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be

Partial Class Atencion_al_Cliente_AtencionCliente
    Inherits System.Web.UI.Page

    Private atencionClientes As List(Of Ecliente) = Nothing
    Private ahorroPrevios As List(Of EahorroPrevio) = Nothing
    Private separacionVenta As New EseparacionVenta
    Private separacionVentas As List(Of EseparacionVenta) = Nothing
    
#Region "       Formulario                  "
    Public Property sCliente() As List(Of Ecliente)
        Get
            If Session("atencionClientes") Is Nothing Then
                Return Nothing
            Else
                Return Session("atencionClientes")
            End If
        End Get
        Set(ByVal value As List(Of Ecliente))
            Session("atencionClientes") = value
        End Set
    End Property
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        AddHandler egvSeparacionVenta.RowCreated, AddressOf egvSeparacionVenta_RowCreated

        Dim str As New StringBuilder
        str.Append("function mostrarPopup(pop){")
        str.Append("    incializarPantallaPago();")
        str.Append("    $find(pop).show();")
        str.Append("    return true;")
        str.Append("    }")
        str.Append("function ocultarPopup(pop){")
        str.Append("    showDivResultadoSeleccio();")
        str.Append("    $find(pop).hide();")
        str.Append("    return true;")
        str.Append("    }")
        ClientScript.RegisterClientScriptBlock(Me.GetType(), "mostrar", str.ToString, True)

        btnCancelar.Attributes.Add("onclick", "ocultarPopup('" + mpPagos.ClientID + "'); return false;")
        '***********************************************************'
        If Not IsPostBack Then
            Me.sCliente = Nothing
            cargarEntidadesFinancieras()
            cargarEstado()
        End If
    End Sub
    Private Sub cargarEntidadesFinancieras()
        selEntidadFinanciera.DataSource = RentFinanciera.SeleccionarXEstado(Me.Master.descEmpresa, True)
        selEntidadFinanciera.DataTextField = "descEntidadFin"
        selEntidadFinanciera.DataValueField = "idEntidadFin"
        selEntidadFinanciera.DataBind()
    End Sub
    Private Sub cargarEstado()
        Dim Eestado As New Ecommons
        selEstadoAhorroPrevio.DataSource = Eestado.estadoMonto
        selEstadoAhorroPrevio.DataTextField = "descripcion"
        selEstadoAhorroPrevio.DataValueField = "codigo"
        selEstadoAhorroPrevio.DataBind()
    End Sub
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        atencionClientes = Rcliente.SeleccionarFiltroAhorroPrevioClientexNombreApePaternoApeMaterno(Me.Master.descEmpresa, False, txtBuscarCliente.Value)
        Me.sCliente = atencionClientes
        If Not atencionClientes Is Nothing Then
            gvwAtencionCliente.DataSource = atencionClientes
            gvwAtencionCliente.DataBind()
        End If
    End Sub
    Protected Sub gvwAtencionCliente_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwAtencionCliente.RowCommand
        Select Case e.CommandName
            Case "Select"
                lblDinamico.Text = "Datos del Cliente"
                atencionClientes = Session("atencionClientes")
                Dim LCliente As Generic.IEnumerable(Of Ecliente) = Nothing
                LCliente = From c In atencionClientes _
                                    Where c.idCliente = e.CommandArgument _
                                    Select c

                Dim idCliente As Int32 = LCliente.ElementAt(0).idCliente
                lblTpoDcmto.Text = LCliente.ElementAt(0).EtpoDcmto.descTpoDcmto
                lblNroDcmto.Text = LCliente.ElementAt(0).nroDocumento
                lblNombres.Text = LCliente.ElementAt(0).NombresCompletos
                lblDireccion.Text = LCliente.ElementAt(0).direccion
                lblTelefono.Text = LCliente.ElementAt(0).telefonoFijo
                lblEmail.Text = LCliente.ElementAt(0).email
                lblDepartamento.Text = LCliente.ElementAt(0).Eubigeo.descDepartamento
                lblProvincia.Text = LCliente.ElementAt(0).Eubigeo.descProvincia
                lblDistrito.Text = LCliente.ElementAt(0).Eubigeo.descDistrito
                lblRazonSocial.Text = LCliente.ElementAt(0).razonSocial
                lblTelefonoLaboral.Text = LCliente.ElementAt(0).telefonoLaboral
                lblPuesto.Text = LCliente.ElementAt(0).puesto

                With separacionVenta
                    .idProyecto = Me.Master.idProyecto
                    .idEtapa = Me.Master.idEtapa
                    .idCliente = idCliente
                    hdNroDocumento.Value = LCliente.ElementAt(0).nroDocumento.Trim
                    upNroDocumento.Update()
                End With
                cargarDetalle(separacionVenta, hdNroDocumento.Value)
        End Select
    End Sub
    Protected Sub gvwAtencionCliente_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwAtencionCliente.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwAtencionCliente, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
#End Region

#Region "       Cliente                     "
    Private Sub cargarDetalle(ByVal separacionVenta As EseparacionVenta, ByVal filtro As String)
        If filtro.Trim.Length > 0 Then
            separacionVentas = RseparacionVenta.SeleccionarXAhorroPrevio(Me.Master.descEmpresa, separacionVenta, filtro)

            ahorroPrevios = RahorroPrevio.SeleccionarAhorroPrevio(Me.Master.descEmpresa, False, separacionVenta)
            Session("ahorroPrevio") = ahorroPrevios

            If Not separacionVentas Is Nothing Then
                egvSeparacionVenta.DataSource = separacionVentas
                egvSeparacionVenta.DataBind()
                upnSeparacionVenta.Update()
            End If
        End If
    End Sub
    Protected Sub egvSeparacionVenta_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        'Handles egvSeparacionVenta.RowCreated
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")

            Dim strUidSeparacion As String = DataBinder.Eval(e.Row.DataItem, "idSeparacionVenta").ToString()
            Dim egvEstPagoInmueble As ExGridView.ExtGridView = CType(e.Row.FindControl("egvEstPagoInmueble"), ExGridView.ExtGridView)
            If egvEstPagoInmueble IsNot Nothing Then
                AddHandler egvEstPagoInmueble.RowCreated, AddressOf egvEstPagoInmueble_RowCreated
            End If

            If strUidSeparacion.Length > 0 Then
                ahorroPrevios = Session("ahorroPrevio")
                Dim LahorroPrevio = From hp In ahorroPrevios _
                                    Where hp.idSeparacionVenta = CType(strUidSeparacion, Int32) _
                                    Order By hp.idAhorroPrevio Ascending _
                                    Select hp.idSeparacionVenta, hp.estadoAhorroPrevio, hp.descEstadoAhorroPrevio Distinct

                If ahorroPrevios.Count > 0 Then
                    egvEstPagoInmueble.DataSource = LahorroPrevio
                    Dim objFila As ExGridView.ExtGridViewRow = CType(e.Row, ExGridView.ExtGridViewRow)
                    objFila.ShowExpand = True
                End If
            End If
        End If
    End Sub
    Protected Sub egvEstPagoInmueble_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")

            Dim egvEstPagoDetalle As ExGridView.ExtGridView = CType(e.Row.FindControl("egvDetalleSeparacion"), ExGridView.ExtGridView)
            If egvEstPagoDetalle IsNot Nothing Then
                AddHandler egvEstPagoDetalle.RowCommand, AddressOf egvDetalleSeparacion_RowCommand
                AddHandler egvEstPagoDetalle.RowCreated, AddressOf egvDetalleSeparacion_RowCreated
            End If

            Dim strUidSeparacion As String = DataBinder.Eval(e.Row.DataItem, "idSeparacionVenta").ToString()
            Dim strUidEstadoPago As String = DataBinder.Eval(e.Row.DataItem, "estadoAhorroPrevio").ToString()

            If strUidSeparacion.Length > 0 Then
                ahorroPrevios = Session("ahorroPrevio")
                Dim LahorroPrevio = From pd In ahorroPrevios _
                                    Where pd.idSeparacionVenta = CType(strUidSeparacion, Int32) AndAlso _
                                          pd.estadoAhorroPrevio = CType(strUidEstadoPago, Int32) _
                                    Select pd

                If ahorroPrevios.Count > 0 Then
                    egvEstPagoDetalle.DataSource = LahorroPrevio
                    Dim objFila As ExGridView.ExtGridViewRow = CType(e.Row, ExGridView.ExtGridViewRow)
                    objFila.ShowExpand = True
                End If
            End If
        End If
    End Sub
    Protected Sub egvDetalleSeparacion_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
    Public Sub egvDetalleSeparacion_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs)
        ahorroPrevios = Session("ahorroPrevio")
        Dim verificando = From hp In ahorroPrevios _
                          Where hp.idAhorroPrevio = e.CommandArgument _
                          Select hp
        If e.CommandName.Equals("btnPagos") Then
            Dim jsMensaje As String = Nothing
            If RahorroPrevio.Editar(Me.Master.descEmpresa, verificando) Then
                With separacionVenta
                    .idProyecto = Me.Master.idProyecto
                    .idEtapa = Me.Master.idEtapa
                End With
                cargarDetalle(separacionVenta, hdNroDocumento.Value)
                jsMensaje = "<script>javascript:showDivResultadoSeleccio();alert(' Se cancelo el pago correctamente.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            Else
                jsMensaje = "<script>javascript:alert(' No se pudo cancelar el pago.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            End If
        End If
    End Sub
#End Region

End Class
